home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / squid_rdos.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  84 lines

  1. #
  2. #  This script was written by David Maciejak <david dot maciejak at kyxar dot fr>
  3. #  based on work from
  4. #  (C) Tenable Network Security
  5. #
  6. #  Ref: iDEFENSE 10.11.04
  7. #
  8. # This script is released under the GNU GPL v2
  9. #
  10.  
  11. if(description)
  12. {
  13.  script_id(15463);
  14.  script_bugtraq_id(11385);
  15.  script_cve_id("CAN-2004-0918");
  16.  script_version ("$Revision: 1.4 $");
  17.  name["english"] = "Squid remote denial of service";
  18.  
  19.  script_name(english:name["english"]);
  20.  
  21.  desc["english"] = "
  22. The remote squid caching proxy, according to its version number, may be 
  23. vulnerable to a remote denial of service.
  24.  
  25. This flaw is caused due to an input validation error in the SNMP module.
  26.  
  27. An attacker can exploit this flaw to crash the server with a specially
  28. crafted UDP packet.
  29.  
  30. *** Nessus reports this vulnerability using only
  31. *** information that was gathered, so this might 
  32. *** be a false positive.
  33.  
  34. Solution : Upgrade to squid 2.5.STABLE7 or newer
  35. Risk factor : High";
  36.  
  37.  
  38.  script_description(english:desc["english"]);
  39.  
  40.  summary["english"] = "Determines squid version";
  41.  script_summary(english:summary["english"]);
  42.  
  43.  script_category(ACT_GATHER_INFO);
  44.  
  45.  script_copyright(english:"This script is Copyright (C) 2004 David Maciejak",
  46.         francais:"Ce script est Copyright (C) 2004 David Maciejak");
  47.  
  48.  family["english"] = "Denial of Service";
  49.  
  50.  script_family(english:family["english"]);
  51.  script_dependencie("find_service.nes");
  52.  if ( defined_func("bn_random") ) 
  53.     script_dependencie("redhat-RHSA-2004-591.nasl");
  54.  script_require_ports("Services/http_proxy",3128, 8080);
  55.  exit(0);
  56. }
  57.  
  58. include("http_func.inc");
  59. include("http_keepalive.inc");
  60.  
  61. if ( get_kb_item("CAN-2004-0918") ) exit(0);
  62.  
  63. port = get_kb_item("Services/http_proxy");
  64. if(!port)
  65. {
  66.  if(get_port_state(3128))
  67.  { 
  68.   port = 3128;
  69.  }
  70.  else port = 8080;
  71. }
  72.  
  73. if(get_port_state(port))
  74. {
  75.  soc = open_sock_tcp(port);
  76.  if(soc)
  77.  {
  78.   req = http_get(item:"/", port:port);
  79.   res = http_keepalive_send_recv(data:req, port:port);
  80.   if(egrep(pattern:"Squid/2\.([0-4]|5\.STABLE[0-6])", string:res))
  81.       security_hole(port);
  82.  }
  83. }
  84.